JInternalFrame


import java.awt.*;
import javax.swing.*;
import javax.swing.JMenuItem;
import java.awt.event.*;
public class sri15 extends JFrame
{

JDesktopPane jdpDesktop;
static int openFrameCount=0;
public sri15()
{
super("JInterFrame Usage Demo");
int inset=50;
Dimension screenSize=
Toolkit.getDefaultToolkit().getScreenSize();
setBounds(inset,inset,screenSize.width-inset*2,screenSize.height-inset*2);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
jdpDesktop=new JDesktopPane();
createFrame();
setContentPane(jdpDesktop);
setJMenuBar(createMenuBar());
jdpDesktop.putClientProperty("JDesktopPane.dragMode","outlines");

     }
protected JMenuBar createMenuBar()
{
JMenuBar menuBar=new JMenuBar();
JMenu menu=new JMenu("Frame");
menu.setMnemonic(KeyEvent.VK_N);
JMenuItem menuItem=new JMenuItem("new IFrame");
menuItem.setMnemonic(KeyEvent.VK_N);
menuItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
createFrame();
}
});
menu.add(menuItem);
menuBar.add(menu);

     return menuBar;
}
protected void createFrame()
{
MyInternalFrame frame=new MyInternalFrame();
frame.setVisible(true);
jdpDesktop.add(frame);
try{
frame.setSelected(true);
}
catch(java.beans.PropertyVetoException e){}
}
public static void main(String args[])
{
sri15  frame=new sri15();
frame.setVisible(true);
}
class MyInternalFrame extends JInternalFrame
{
static final int xPosition=30,yPosition=30;
public MyInternalFrame()
{
super("IFtame #"+(++openFrameCount),
true,
true,
true,
true);

     setSize(300,300);

      setLocation(xPosition*openFrameCount,yPosition*openFrameCount);
}
}

}